package pe.edu.upc.jtigers.svpn.service.implement;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pe.edu.upc.jtigers.svpn.aplication.excepcion.DAOExcepcion;
import pe.edu.upc.jtigers.svpn.domain.data.CategoriaDao;
import pe.edu.upc.jtigers.svpn.domain.model.Categoria;
import pe.edu.upc.jtigers.svpn.domain.service.CategoriaService;

@Service
public class CategoriaServiceImpl implements CategoriaService {

	@Autowired
	private CategoriaDao categoriaDao;

	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Categoria registrarCategoria(Categoria categoria) {
		try {
			categoriaDao.registrarCategoria(categoria);
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return categoria;
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Categoria eliminarCategoria(int idCategoria) {
		Categoria categoria = null;
		try {
			categoria = categoriaDao.eliminarCategoria(idCategoria);
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return categoria;
	}

	@Override
	public Categoria obtenerCategoria(int idCategoria) {
		Categoria categoria = null;
		try {
			categoria = categoriaDao.obtenerCategoria(idCategoria);
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return categoria;
	}

	@Override
	public Collection<Categoria> listarCategorias() {
		Collection<Categoria> lista = null;
		try {
			lista = categoriaDao.listarCategorias();
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return lista;
	}

}
